Computer graphics systems are commonly used for displaying graphical representations of objects on a two-dimensional display. Current computer graphics systems provide highly detailed visual representations of objects and are used in a variety of applications.
A typical computer that employs a computer graphics system is shown in FIG. 1. Referring to FIG. 1, the computer 11 includes a central processing unit (CPU) 12, a system memory 14 for storing software that is executed by the CPU 12, a graphics system 16 for processing graphics data received from the CPU 12, a local interface 18 configured to electrically interconnect the foregoing elements, and a display 21 connected to the graphics system 16 via a connection 22 and configured to display the image data generated by the graphics system 16.
The graphics system 16 breaks down objects to be represented on the display 21 into graphics primitives. "Primitives" are basic components of an image data and may include points, lines, vectors, and polygons, such as triangles and quadrilaterals. Typically, hardware and/or software is implemented in the graphics system 16 in order to render, or draw, the graphics primitives that represent a view of one or more objects being represented on the display 21.
Generally, the primitives of an object to be rendered are defined by the CPU 12 in terms of primitive data. For example, when a primitive is a triangle, the CPU 12 may define the primitive in terms of, among other things, x, y, and z coordinates and color values (e.g., red, green, blue) of its vertices. Additional primitive data may be used in specific applications. The graphics system 16 ultimately interpolates the primitive data to compute the final display screen pixel values that represent each primitive, and the R, G, and B color values for each pixel.
The computer graphics system 16 is configured to receive vertex data from the CPU 12 and define the primitives that make up the view to be displayed. The computer graphics system 16 then processes the image data so the data can be rendered by display 21. The processing of the image data may include processes such as transforming a vertex in space, clipping portions of objects that extend beyond a boundary, enhancing the image data by simulating light conditions, and defining the primitives in terms of mathematical floating point plane equations.
The operations of the graphics system 16 are highly mathematical and computation intensive. One frame of a three-dimensional (3D ) graphics display may include on the order of hundreds of thousands of primitives. To achieve state-of-the-art performance, the graphics system 16 may be required to perform several hundred million floating point calculations per second. Furthermore, the volume of data transfer between the CPU 12 and the graphics system 16 is very large. The data for a single quadrilateral may be on the order of sixty-four words of thirty-two bits each. Additional data transmitted from the CPU 12 to graphics system 16 includes light parameters, clipping parameters, and other parameters needed to generate the graphics image for the display 21. The amount of memory and data calls necessary to process all of the parameters for rendering a display increases the run time and, hence, decreases the efficiency of the graphics system 16.
A heretofore unaddressed need exists in the industry for a system and method for efficiently representing a geometrical object in order to minimize the amount of data and data calls needed to process image data in a computer graphics system.